|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Data; 00030 using System.Configuration; 00031 using System.Collections; 00032 using System.Collections.Generic; 00033 using System.Web; 00034 using System.Web.Security; 00035 using System.Web.UI; 00036 using System.Web.UI.WebControls; 00037 using System.Web.UI.WebControls.WebParts; 00038 using System.Web.UI.HtmlControls; 00039 00040 using RAIS; 00041 using RAIS.Common.UserManagement; 00042 //using RAIS.ApplicationLogicLayer; 00043 00044 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>; 00045 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>; 00046 using Regions = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Region>; 00047 using Districts = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.District>; 00048 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>; 00049 00050 namespace RAIS.UI.SpecificMasks 00051 { 00055 public partial class EditDataRoles_New : System.Web.UI.Page 00056 { 00060 enum EditDataRoles_PageMode 00061 { 00062 viewRoles, 00063 addRole, 00064 editRole 00065 }; 00066 #region Event handlers 00067 protected void Page_PreLoad(object sender, EventArgs e) 00068 { 00069 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00070 } 00081 protected void Page_Load(object sender, EventArgs e) 00082 { 00083 this.Response.Cache.SetNoStore(); 00084 if (this.CurrentUser == null) 00085 UI.Common.AccessManagement.SignOut(this); 00086 00087 if (!this.IsPostBack) 00088 { 00089 this.BTNdmdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_DATA_ROLE.Replace("'", "\\'"))); 00090 UI.Common.UserManagement.InitializeDataRoles(this); 00091 } 00092 00093 this.InitializeControls(); 00094 this.EnableRemoveButton(); 00095 00096 this.LBLresult.Text = ""; 00097 00098 if (!this.IsPostBack) 00099 { 00100 this.LBLusername.Text = this.CurrentUser.Name; 00101 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00102 this.ShowRole(); 00103 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00104 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00105 } 00106 } 00107 protected void Page_Init(object sender, EventArgs e) 00108 { 00109 //Common.PageManagement.SetScrolableListBox(LBdmrolename, this, true); 00110 Common.PageManagement.SetScrolableListBox(LBdm, this, true); 00111 } 00118 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00119 { 00120 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00121 } 00128 protected void LBTNlogout_Click(object sender, EventArgs e) 00129 { 00130 UI.Common.AccessManagement.SignOut(this); 00131 } 00132 00141 protected void LBdmrolename_SelectedIndexChanged(object sender, EventArgs e) 00142 { 00143 this.EnableDisableEditDelete(); 00144 this.ShowRole(); 00145 } 00152 protected void BTNadd_Click(object sender, EventArgs e) 00153 { 00154 this.ClearRoleData(); 00155 this.CreateTemperaryRole(); 00156 this.Modified = true; 00157 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.addRole; 00158 } 00166 protected void BTNedit_Click(object sender, EventArgs e) 00167 { 00168 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.editRole; 00169 this.EnableRemoveButton(); 00170 } 00177 protected void BTNdelete_Click(object sender, EventArgs e) 00178 { 00179 this.DeleteSelectedRole(); 00180 this.EnableDisableEditDelete(); 00181 this.ShowRole(); 00182 } 00190 protected void BTNsave_Click(object sender, EventArgs e) 00191 { 00192 if (this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.addRole) 00193 this.AddNewRole(); 00194 else 00195 this.SaveRole(); 00196 this.EnableDisableEditDelete(); 00197 } 00205 protected void BTNdiscard_Click(object sender, EventArgs e) 00206 { 00207 this.ClearRoleData(); 00208 this.EnableRemoveButton(); 00209 this.ShowRole(); 00210 00211 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00212 this.Modified = false; 00213 00214 this.InitializeControls(); 00215 this.EnableDisableControls(); 00216 } 00223 protected void BTNfmadd_Click(object sender, EventArgs e) 00224 { 00225 this.AddDataRoleAttribute(); 00226 this.InitializeControls(); 00227 this.EnableRemoveButton(); 00228 } 00236 protected void BTNfmremove_Click(object sender, EventArgs e) 00237 { 00238 this.RemoveDataRoleAttribute(); 00239 this.InitializeControls(); 00240 this.EnableRemoveButton(); 00241 } 00242 #endregion 00243 #region Private helper methods 00244 00247 private void CreateTemperaryRole() 00248 { 00249 DataRole tempRole = new DataRole(); 00250 this.Session[UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = tempRole; 00251 } 00258 void ShowRole() 00259 { 00260 if (this.SelectedRole == null) 00261 { 00262 ClearRoleData(); 00263 return; 00264 } 00265 else 00266 { 00267 this.TXTrolename.Text = this.SelectedRole.Name; 00268 UI.Common.UserManagement.InitializeDataRoleAttributesList(this.LBdm, this.SelectedRole); 00269 } 00270 } 00274 void ClearRoleData() 00275 { 00276 this.TXTrolename.Text = ""; 00277 this.LBdm.Items.Clear(); 00278 this.DDLdmdistrict.SelectedIndex = 0; 00279 this.DDLdmregion.SelectedIndex = 0; 00280 this.DDLdmfacility.SelectedIndex = 0; 00281 } 00285 private void RemoveDataRoleAttribute() 00286 { 00287 DataRole selectedRole = this.SelectedRole; 00288 if (selectedRole != null) 00289 { 00290 DataRoleAttribute attribute = this.SelectedRoleAttribute; 00291 try 00292 { 00293 this.InitializeControls(); 00294 this.SetRegionSelection(attribute); 00295 this.SetDistrictSelection(attribute); 00296 this.SetFacilitySelection(attribute); 00297 } 00298 catch 00299 { 00300 } 00301 00302 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE; 00303 bool success = selectedRole.RemoveAttribute(attribute, ref returnMessage); 00304 this.EnableDisableControls(); 00305 00306 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00307 } 00308 } 00312 private void AddDataRoleAttribute() 00313 { 00314 DataRole selectedRole = this.SelectedRole; 00315 if (selectedRole != null) 00316 { 00317 DataRoleAttribute dataRoleAttribute = new DataRoleAttribute(); 00318 dataRoleAttribute.Region = this.SelectedRegion; 00319 dataRoleAttribute.District = this.SelectedDistrict; 00320 dataRoleAttribute.Facility = this.SelectedFacility; 00321 00322 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE; 00323 bool bSuccess = this.ValidateNewDataRoleAttribute(dataRoleAttribute, ref returnMessage); 00324 if (bSuccess) 00325 { 00326 selectedRole.AddAttribute(dataRoleAttribute, ref returnMessage); 00327 this.EnableDisableControls(); 00328 UI.Common.UserManagement.InitializeDataRoleAttributesList(this.LBdm, selectedRole); 00329 this.LBdm.SelectedValue = dataRoleAttribute.ToString(); 00330 } 00331 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00332 returnMessage, 00333 bSuccess); 00334 } 00335 } 00339 private void AddNewRole() 00340 { 00341 string validationMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE; 00342 bool success = this.ValidateNewDataRole(this.TXTrolename.Text, ref validationMessage); 00343 if (success) 00344 { 00345 success = ApplicationLogicLayer.UserManagement.AddDataRole(this.TXTrolename.Text, ref validationMessage); 00346 if (success) 00347 { 00348 DataRole tempRole = this.SelectedRole; 00349 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = null; 00350 UI.Common.UserManagement.InitializeDataRoles(this); 00351 00352 DataRoles dataRoles = (DataRoles)this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG]; 00353 DataRole savedRole = dataRoles[this.TXTrolename.Text]; 00354 00355 foreach (DataRoleAttribute attribute in tempRole.AddedAttributes.Values) 00356 { 00357 success = savedRole.AddAttribute(attribute, ref validationMessage); 00358 if (!success) 00359 break; 00360 } 00361 if (success) 00362 success = ApplicationLogicLayer.UserManagement.SaveDataRole(savedRole, ref validationMessage); 00363 } 00364 00365 if (success) 00366 { 00367 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00368 this.Modified = false; 00369 00370 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename); 00371 this.LBdmrolename.SelectedValue = this.TXTrolename.Text; 00372 00373 UI.Common.UserManagement.InitializeDataRoleAttributesList(this.LBdm, this.SelectedRole); 00374 00375 this.InitializeControls(); 00376 this.EnableDisableControls(); 00377 } 00378 } 00379 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, validationMessage, success); 00380 } 00384 private void DeleteSelectedRole() 00385 { 00386 DataRole selectedRole = this.SelectedRole; 00387 00388 bool success = false; 00389 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE; 00390 if (selectedRole != null) 00391 { 00392 success = ApplicationLogicLayer.UserManagement.RemoveDataRole(selectedRole, ref returnMessage); 00393 if (success) 00394 { 00395 this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG] = null; //for resetting 00396 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename); 00397 } 00398 } 00399 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage( this.LBLresult, 00400 returnMessage, 00401 success); 00402 } 00407 private bool SaveRole() 00408 { 00409 string returnMessage = ""; 00410 bool success = true; 00411 00412 if (!this.Modified) 00413 { 00414 returnMessage = RAIS.Common.Messages.DATA_ROLE_NO_MODIFICATION; 00415 success = false; 00416 } 00417 else 00418 { 00419 success = ApplicationLogicLayer.UserManagement.SaveDataRole(this.SelectedRole, ref returnMessage); 00420 if (success) 00421 { 00422 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00423 this.Modified = false; 00424 00425 this.InitializeControls(); 00426 this.EnableDisableControls(); 00427 } 00428 } 00429 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00430 returnMessage, 00431 success); 00432 return success; 00433 } 00442 bool ValidateNewDataRole(string dataRoleName, ref string returnMessage) 00443 { 00444 DataRoles dataRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG]; 00445 if (dataRoles.ContainsKey(dataRoleName)) 00446 { 00447 returnMessage = RAIS.Common.Messages.DATA_ROLE_EXISTS; 00448 return false; 00449 } 00450 else 00451 if (dataRoleName.Length == 0) 00452 { 00453 returnMessage = RAIS.Common.Messages.NAME_IS_EMTPY; 00454 return false; 00455 } 00456 else 00457 00458 return true; 00459 00460 00461 } 00470 bool ValidateNewDataRoleAttribute(DataRoleAttribute newDataRoleAttributeName, ref string returnMessage) 00471 { 00472 DataRole dataRole = this.SelectedRole; 00473 if (dataRole == null) 00474 { 00475 returnMessage = RAIS.Common.Messages.DATA_ROLE_DOES_NOT_EXIST; 00476 return false; 00477 } 00478 else 00479 { 00480 return dataRole.ValidateNewAttribute(newDataRoleAttributeName, ref returnMessage); 00481 } 00482 } 00487 private bool ConfirmRoleDeletion() 00488 { 00489 return true; 00490 } 00494 private void EnableRemoveButton() 00495 { 00496 this.BTNdmremove.Enabled = this.LBdm.Items.Count > 0 && 00497 this.SelectedRole != null && 00498 this.SelectedRole.Attributes.ContainsKey(this.LBdm.SelectedValue) && 00499 this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00500 } 00504 private void InitializeControls() 00505 { 00506 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename); 00507 UI.Common.UserManagement.InitializeRegionsList(this.DDLdmregion, this.SelectedRole); 00508 00509 UI.Common.UserManagement.InitializeDistrictsList(this.DDLdmdistrict, 00510 this.DDLdmregion.SelectedValue); 00511 00512 UI.Common.UserManagement.InitializeFacilitiesList(this.DDLdmfacility, 00513 this.DDLdmregion.SelectedValue, 00514 this.DDLdmdistrict.SelectedValue); 00515 00516 UI.Common.UserManagement.InitializeDataRoleAttributesList(this.LBdm, 00517 this.SelectedRole); 00518 00519 } 00523 private void EnableDisableControls() 00524 { 00525 this.LBdm.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00526 00527 this.DDLdmregion.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00528 this.DDLdmdistrict.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00529 this.DDLdmfacility.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00530 00531 this.BTNdmadd.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00532 this.BTNdmremove.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00533 00534 this.BTNadd.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles; 00535 this.BTNsave.Enabled = this.Modified; 00536 this.BTNdiscard.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; ; 00537 00538 this.LBdmrolename.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles; 00539 this.TXTrolename.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.addRole; 00540 00541 this.EnableDisableEditDelete(); 00542 00543 UI.Common.UserManagement.EnableCommonControls(this, this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles); 00544 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00545 00546 if (this.Modified) 00547 this.BTNdiscard.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DISCARD_QUESTION_ROLE.Replace("'", "\\'"))); 00548 else 00549 this.BTNdiscard.Attributes.Remove("onclick"); 00550 } 00554 void EnableDisableEditDelete() 00555 { 00556 this.BTNedit.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles && this.SelectedRole != null; 00557 this.BTNdmdelete.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles && this.SelectedRole != null; 00558 } 00564 private void SetRegionSelection(DataRoleAttribute roleAttribute) 00565 { 00566 if (roleAttribute != null) 00567 { 00568 this.DDLdmregion.SelectedValue = roleAttribute.Region.Name; 00569 } 00570 } 00576 private void SetDistrictSelection(DataRoleAttribute roleAttribute) 00577 { 00578 if (roleAttribute != null) 00579 { 00580 this.DDLdmdistrict.SelectedValue = roleAttribute.District.Name; 00581 } 00582 } 00588 private void SetFacilitySelection(DataRoleAttribute roleAttribute) 00589 { 00590 if (roleAttribute != null) 00591 { 00592 this.DDLdmfacility.SelectedValue = roleAttribute.Facility.Name; 00593 } 00594 } 00595 #endregion 00596 #region Private properties 00597 00600 private DataRole SelectedRole 00601 { 00602 get 00603 { 00604 if (this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] != null) 00605 return (DataRole)this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG]; 00606 else 00607 { 00608 DataRoles dataRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG]; 00609 if (dataRoles != null && dataRoles.ContainsKey(this.LBdmrolename.SelectedValue)) 00610 return dataRoles[this.LBdmrolename.SelectedValue]; 00611 else 00612 return null; 00613 } 00614 } 00615 } 00619 private Region SelectedRegion 00620 { 00621 get 00622 { 00623 Regions regions = (Regions)this.Session[RAIS.UI.Common.Constants.REGIONS_TAG]; 00624 if (regions != null) 00625 return regions[this.DDLdmregion.SelectedValue]; 00626 else 00627 return null; 00628 } 00629 } 00633 private District SelectedDistrict 00634 { 00635 get 00636 { 00637 Districts districts = ApplicationLogicLayer.UserManagement.GetDistrictsByRegion(this.SelectedRegion); 00638 if (districts != null) 00639 return districts[this.DDLdmdistrict.SelectedValue]; 00640 else 00641 return null; 00642 } 00643 } 00647 private Facility SelectedFacility 00648 { 00649 get 00650 { 00651 Region selectedRegion = this.SelectedRegion; 00652 District selectedDistrict = this.SelectedDistrict; 00653 Facilities facilities = ApplicationLogicLayer.UserManagement.GetFacilitiesByRegionAndDistrict(selectedRegion, selectedDistrict); 00654 if (facilities != null) 00655 return facilities[this.DDLdmfacility.SelectedValue]; 00656 else 00657 return null; 00658 } 00659 } 00663 private DataRoleAttribute SelectedRoleAttribute 00664 { 00665 get 00666 { 00667 DataRole selectedRole = this.SelectedRole; 00668 if (selectedRole != null && selectedRole.Attributes.ContainsKey(this.LBdm.SelectedValue)) 00669 return selectedRole.Attributes[this.LBdm.SelectedValue]; 00670 else 00671 return null; 00672 } 00673 } 00677 EditDataRoles_PageMode CurrentEditDataRoles_PageMode 00678 { 00679 get 00680 { 00681 if (this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG] != null) 00682 { 00683 return (EditDataRoles_PageMode)this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG]; 00684 } 00685 else 00686 return EditDataRoles_PageMode.viewRoles; 00687 } 00688 set 00689 { 00690 string message; 00691 switch (value) 00692 { 00693 case EditDataRoles_PageMode.addRole: message = RAIS.UI.Common.Constants.ADDING_NEW_DATA_ROLE; break; 00694 case EditDataRoles_PageMode.editRole: message = RAIS.UI.Common.Constants.EDITTING_EXISTING_DATA_ROLE; break; 00695 00696 default: 00697 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = null; 00698 message = ""; 00699 break; 00700 } 00701 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true); 00702 this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG] = value; 00703 this.EnableDisableControls(); 00704 } 00705 } 00709 bool Modified 00710 { 00711 get 00712 { 00713 if (this.SelectedRole != null) 00714 return this.SelectedRole.Modified; 00715 else 00716 return false; 00717 } 00718 set 00719 { 00720 if (this.SelectedRole != null) 00721 this.SelectedRole.Modified = value; 00722 00723 if (!value) 00724 this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG] = null; 00725 } 00726 } 00730 protected UserData CurrentUser 00731 { 00732 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00733 } 00734 #endregion Properties 00735 } 00736 }